#pragma once
#include <comm/xpu_aten.h>

#include <ATen/native/xpu/sycl/ForeachPointwiseOpScalarListKernels.h>

namespace at::native::xpu {

#define FOREACH_POINTWISE_OP_TENSOR_KERNEL(NAME) \
  FOREACH_POINTWISE_OP_SCALARLIST_KERNEL(NAME)

#define FOREACH_POINTWISE_OP_TENSOR_INPLACE_KERNEL(NAME) \
  FOREACH_POINTWISE_OP_SCALARLIST_INPLACE_KERNEL(NAME)

TORCH_XPU_API FOREACH_POINTWISE_OP_TENSOR_KERNEL(addcmul);
TORCH_XPU_API FOREACH_POINTWISE_OP_TENSOR_INPLACE_KERNEL(addcmul);
TORCH_XPU_API FOREACH_POINTWISE_OP_TENSOR_KERNEL(addcdiv);
TORCH_XPU_API FOREACH_POINTWISE_OP_TENSOR_INPLACE_KERNEL(addcdiv);

} // namespace at::native::xpu
